home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-04-19 | 7.4 KB | 347 lines | [TEXT/MPS ] |
-
- /*
- * This file was generated by the SOM Compiler.
- * FileName: Locrian:WWDCSun:CPlusPlus:ODObject.xh.
- * Generated using:
- * SOM Precompiler somipc: somc/smemit.c
- * SOM Emitter emitxh.dll: somc/smmain.c
- */
-
- /*
- *
- * Theory of Operation
- *
- *
- * Classes defined in this interface
- *
- */
-
-
- #ifndef SOM_ODObject_xh
- #define SOM_ODObject_xh
-
- class ODObject;
-
- #define ODObject_MajorVersion 0
- #define ODObject_MinorVersion 0
-
- /*
- * Passthru lines: File: "C.xh", "before"
- */
-
-
- #include <ODTypes.xh>;
- #include <ODTypesM.h>;
-
-
- /* C++ som defs */
- #include <somcls.xh>
-
- /* Include C++ parent defs */
- #ifndef SOM_SOMObject_xh
- #include <somobj.xh>
- #endif
-
- #ifndef ODObject_API
- #define ODObject_API
- /*
- * -- The Class API
- */
-
- /*
- * Start of user-defined types:
- */
- class ODExtension;
-
- /*
- * End of user-defined types.
- */
-
- #if applec ^ PRAGMA_LIB_EXPORT
- #pragma lib_export on
- #endif
-
-
- /* A procedure to create the ODObject Class */
- class M_ODObject;
- SOMEXTERN M_ODObject * SOMLINK ODObjectNewClass(
- integer4 majorVersion,
- integer4 minorVersion);
-
- /* The API to the ODObject class object, and the methods it introduces. */
- typedef struct ODObjectClassDataStructure {
- M_ODObject *classObject;
- somMToken InitObject;
- somMToken IsInitialized;
- somMToken HasExtension;
- somMToken GetExtension;
- somMToken ReleaseExtension;
- somMToken Purge;
- somMToken SubClassResponsibility;
- } ODObjectClassDataStructure;
- #ifdef SOM_NO_DATA_EXPORTS
- SOMEXTERN ODObjectClassDataStructure * ODObjectGetClassData ( void );
- # undef ODObjectClassData
- # define ODObjectClassData (*ODObjectGetClassData())
- #else
- SOMEXTERN ODObjectClassDataStructure ODObjectClassData;
- #endif /* SOM_NO_DATA_EXPORTS */
-
- #if applec ^ PRAGMA_LIB_EXPORT
- #pragma lib_export off
- #endif
-
- #define _ODObject ODObjectClassData.classObject
-
- /* The API to parentMtabs for ODObject, and the instance data it introduces. */
- SOMEXTERN struct ODObjectCClassDataStructure {
- somMethodTabs parentMtab;
- somDToken instanceDataToken;
- } ODObjectCClassData;
-
- /*
- * -- Typedefs for Procedures that support Methods introduced by ODObject
- */
- SOMEXTERN {
- typedef void (* SOMLINK somTD_ODObject_InitObject)(ODObject *somSelf, Environment *ev);
- typedef boolean (* SOMLINK somTD_ODObject_IsInitialized)(ODObject *somSelf, Environment *ev);
- typedef boolean (* SOMLINK somTD_ODObject_HasExtension)(ODObject *somSelf, Environment *ev,
- ODType extensionName);
- typedef ODExtension* (* SOMLINK somTD_ODObject_GetExtension)(ODObject *somSelf, Environment *ev,
- ODType extensionName);
- typedef void (* SOMLINK somTD_ODObject_ReleaseExtension)(ODObject *somSelf, Environment *ev,
- ODExtension* extension);
- typedef ODSize (* SOMLINK somTD_ODObject_Purge)(ODObject *somSelf, Environment *ev,
- ODSize size);
- typedef void (* SOMLINK somTD_ODObject_SubClassResponsibility)(ODObject *somSelf, Environment *ev);
- }
-
- #endif /* ODObject_API */
-
-
- /*
- * -- Method Tokens are Thunks
- */
- #undef somresolve_
- #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
-
- /*
- * -- The C++ Wrapper Class for ODObject
- */
- class ODObject : public SOMObject
- {
- public:
-
- void *operator new(size_t size)
- {
- SOM_IgnoreWarning(size);
- if (!ODObjectClassData.classObject)
- ODObjectNewClass(ODObject_MajorVersion,ODObject_MinorVersion);
- return (void *)
- ((somTD_SOMClass_somNew)
- somresolve_((SOMObject *)((void*)(ODObjectClassData.classObject)),
- SOMClassClassData.somNew))
- ((SOMClass *)((void*)(ODObjectClassData.classObject)));
- }
-
- void operator delete(void * obj)
- {
- ((SOMObject *)obj)->somFree();
- }
-
- /* Override somGetClass for this class to specialize the return type. */
- M_ODObject* somGetClass()
- {
- return (M_ODObject *) ((void *)(SOMObject::somGetClass()));
- }
-
- /* public method: InitObject */
- void InitObject(Environment *ev)
- {
- SOM_Resolve(this,ODObject,InitObject)
- (this,ev);
- }
-
-
- /* public method: IsInitialized */
- boolean IsInitialized(Environment *ev)
- {
- return SOM_Resolve(this,ODObject,IsInitialized)
- (this,ev);
- }
-
-
- /* public method: HasExtension */
- boolean HasExtension(Environment *ev,
- ODType extensionName)
- {
- return SOM_Resolve(this,ODObject,HasExtension)
- (this,ev,extensionName);
- }
-
-
- /* public method: GetExtension */
- ODExtension* GetExtension(Environment *ev,
- ODType extensionName)
- {
- return SOM_Resolve(this,ODObject,GetExtension)
- (this,ev,extensionName);
- }
-
-
- /* public method: ReleaseExtension */
- void ReleaseExtension(Environment *ev,
- ODExtension* extension)
- {
- SOM_Resolve(this,ODObject,ReleaseExtension)
- (this,ev,extension);
- }
-
-
- /* public method: Purge */
- ODSize Purge(Environment *ev,
- ODSize size)
- {
- return SOM_Resolve(this,ODObject,Purge)
- (this,ev,size);
- }
-
-
- /* public method: SubClassResponsibility */
- void SubClassResponsibility(Environment *ev)
- {
- SOM_Resolve(this,ODObject,SubClassResponsibility)
- (this,ev);
- }
-
-
-
- }; /* ODObject */
-
-
-
- #endif /* SOM_ODObject_xh */
-
- #ifndef SOM_M_ODObject_xh
- #define SOM_M_ODObject_xh
-
- class M_ODObject;
-
- #define M_ODObject_MajorVersion 0
- #define M_ODObject_MinorVersion 0
-
- /* C++ som defs */
- #include <somcls.xh>
-
- /* Include C++ parent defs */
- #ifndef SOM_SOMClass_xh
- #include <somcls.xh>
- #endif
-
- #ifndef M_ODObject_API
- #define M_ODObject_API
- /*
- * -- The Class API
- */
-
- /*
- * Start of user-defined types:
- */
- class ODExtension;
-
- /*
- * End of user-defined types.
- */
-
- /*
- * -- M_ODObject is a metaclass for ODObject. Make sure ODObject is known.
- */
- class ODObject;
-
-
- #if applec ^ PRAGMA_LIB_EXPORT
- #pragma lib_export on
- #endif
-
-
- /* A procedure to create the M_ODObject Class */
- SOMEXTERN SOMClass * SOMLINK M_ODObjectNewClass(
- integer4 majorVersion,
- integer4 minorVersion);
-
- /* The API to the M_ODObject class object, and the methods it introduces. */
- typedef struct M_ODObjectClassDataStructure {
- SOMClass *classObject;
- } M_ODObjectClassDataStructure;
- #ifdef SOM_NO_DATA_EXPORTS
- SOMEXTERN M_ODObjectClassDataStructure * M_ODObjectGetClassData ( void );
- # undef M_ODObjectClassData
- # define M_ODObjectClassData (*M_ODObjectGetClassData())
- #else
- SOMEXTERN M_ODObjectClassDataStructure M_ODObjectClassData;
- #endif /* SOM_NO_DATA_EXPORTS */
-
- #if applec ^ PRAGMA_LIB_EXPORT
- #pragma lib_export off
- #endif
-
- #define _M_ODObject M_ODObjectClassData.classObject
-
- /* The API to parentMtabs for M_ODObject, and the instance data it introduces. */
- SOMEXTERN struct M_ODObjectCClassDataStructure {
- somMethodTabs parentMtab;
- somDToken instanceDataToken;
- } M_ODObjectCClassData;
-
- /*
- * -- Typedefs for Procedures that support Methods introduced by M_ODObject
- */
- SOMEXTERN {
- }
-
- #endif /* M_ODObject_API */
-
-
- /*
- * -- Method Tokens are Thunks
- */
- #undef somresolve_
- #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
-
- /*
- * -- The C++ Wrapper Class for M_ODObject
- */
- class M_ODObject : public SOMClass
- {
- public:
-
- void *operator new(size_t size)
- {
- SOM_IgnoreWarning(size);
- if (!M_ODObjectClassData.classObject)
- M_ODObjectNewClass(M_ODObject_MajorVersion,M_ODObject_MinorVersion);
- return (void *)
- ((somTD_SOMClass_somNew)
- somresolve_((SOMObject *)((void*)(M_ODObjectClassData.classObject)),
- SOMClassClassData.somNew))
- ((SOMClass *)((void*)(M_ODObjectClassData.classObject)));
- }
-
- void operator delete(void * obj)
- {
- ((SOMObject *)obj)->somFree();
- }
-
- /* Override somNew for this Metaclass to specialize the return type. */
- ODObject* somNew()
- {
- return (ODObject *) ((void *)(SOMClass::somNew()));
- }
-
-
- }; /* M_ODObject */
-
-
-
- #endif /* SOM_M_ODObject_xh */
-